//
//  AppDelegate.m
//  WOVOpener
//
//  Created by James Tuley on 4/13/08.
//  Copyright 2008 James Tuley. All rights reserved.
//

/* ***** BEGIN LICENSE BLOCK *****
 * Version: MPL 1.1/GPL 2.0/LGPL 2.1
 *
 * The contents of this file are subject to the Mozilla Public License Version
 * 1.1 (the "License"); you may not use this file except in compliance with
 * the License. You may obtain a copy of the License at
 * http://www.mozilla.org/MPL/
 *
 * Software distributed under the License is distributed on an "AS IS" basis,
 * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
 * for the specific language governing rights and limitations under the
 * License.
 *
 * The Original Code is WOV Suite.
 *
 * The Initial Developer of the Original Code is
 * James Tuley.
 * Portions created by the Initial Developer are Copyright (C) 2008
 * the Initial Developer. All Rights Reserved.
 *
 * Contributor(s):
 *           James Tuley <jay+wov@tuley.name> (WOV Suite Author)
 *
 * Alternatively, the contents of this file may be used under the terms of
 * either the GNU General Public License Version 2 or later (the "GPL"), or
 * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
 * in which case the provisions of the GPL or the LGPL are applicable instead
 * of those above. If you wish to allow use of your version of this file only
 * under the terms of either the GPL or the LGPL, and not to allow others to
 * use your version of this file under the terms of the MPL, indicate your
 * decision by deleting the provisions above and replace them with the notice
 * and other provisions required by the GPL or the LGPL. If you do not delete
 * the provisions above, a recipient may use your version of this file under
 * the terms of any one of the MPL, the GPL or the LGPL.
 *
 * ***** END LICENSE BLOCK ***** */



#import "AppDelegate.h"
#import "AskWhenOpeningController.h"
#import <WrapperOfVideo/WrapperOfVideo.h>

@interface AppDelegate(Private)

-(void)openWOV:(NSArray*) anArray;
@end

@implementation AppDelegate

- (void)applicationWillFinishLaunching:(NSNotification *)aNotification{
	[[NSUserDefaults standardUserDefaults] registerDefaults:
	 [NSDictionary dictionaryWithContentsOfFile:
	  [[NSBundle mainBundle] pathForResource:@"Defaults" ofType:@"plist"]]];
	
	askController = [[AskWhenOpeningController alloc]init];
	[NSBundle loadNibNamed:@"AskWhenOpening.nib" owner:askController]; 
}

-(IBAction)setPromptPreference:(id)sender{
	[[NSUserDefaults standardUserDefaults] setBool:[sender state]==NSOnState forKey:@"DontPrompt"];
}

-(IBAction)openPrefWindow:(id)sender{
	[dontPrompt setState:[[NSUserDefaults standardUserDefaults] boolForKey:@"DontPrompt"] ? NSOnState : NSOffState];
	[prefWindow orderFront:sender];
}

-(IBAction)openFiles:(id)sender{
	NSOpenPanel* tPanel =[NSOpenPanel openPanel];
	[tPanel runModal];
	[self application:NSApp openFiles:[tPanel filenames]];
}

-(void)openWOV:(NSArray*) anArray{
	
	
	
	NSMutableArray* tArray = [NSMutableArray array];
	NSEnumerator* tEnum = [anArray objectEnumerator];
	WOVMovie* tWOVMov = nil;
	
	while(tWOVMov = [tEnum nextObject]){
		if([[NSUserDefaults standardUserDefaults] boolForKey:@"UsesMoov"]){
			[tArray addObject:[NSURL fileURLWithPath:[tWOVMov quicktimeMoviePath]]];
		}else{
			[tArray addObject:[NSURL fileURLWithPath:[tWOVMov standardPath]]];
		}
	}
	
	NSString* tApp = [[NSUserDefaults standardUserDefaults] objectForKey:@"OpenApp"];
	
	[[NSWorkspace sharedWorkspace] openURLs:tArray
					withAppBundleIdentifier:tApp 
									options:NSWorkspaceLaunchDefault 
			 additionalEventParamDescriptor:nil
						  launchIdentifiers:nil];
}

- (BOOL)application:(NSApplication *)theApplication openFile:(NSString *)filename{
	[self application:theApplication openFiles:[NSArray arrayWithObject:filename]];
	return YES;
}

- (void)application:(NSApplication *)sender openFiles:(NSArray *)filenames{
	NSArray* tChosen;
	int tInt;
	if(![[NSUserDefaults standardUserDefaults] boolForKey:@"DontPrompt"]){
		[askController setArray:filenames];
		[askController loadMenu];
		 tInt =[NSApp runModalForWindow:[askController window]];
		[[askController window] orderOut:nil];
		tChosen =[ askController array];
	}else{
		tInt =1;
		tChosen =filenames;
	}
	
	if(tInt > 0){
		NSEnumerator* tEnum = [tChosen objectEnumerator];
		NSString* tPath = nil;
		NSMutableArray* tArray = [NSMutableArray array];
		while(tPath = [tEnum nextObject]){
			[tArray addObject:[WOVMovie wovWithPath:tPath]];
		}
		[self openWOV:tArray];
	}
}

- (BOOL)application:(id)sender openFileWithoutUI:(NSString *)filename{
	return [self application:NSApp openFile:filename];
}



@end
